Microprocessors also known as “processors” are used today in a wide range of embedded systems. Mobile phones, Bluetooth headsets, electronic gas and electricity meters, pacemakers, anti-lock brakes, and engine management controllers are just a few examples of systems with embedded microprocessors. These systems typically contain all of their software in a non-volatile memory such as FLASH memory or ROM, which may be executed directly from the FLASH or ROM memory, or copied to SRAM for execution. Such software is often termed “firmware”.